gcc -Wall -std=c99 -pedantic -g sa.c -o sa  -l m -l png
In file included from /usr/include/pngconf.h:50:0,
                 from /usr/include/png.h:366,
                 from readpng.c:3,
                 from sa.c:3:
readpng.c: In function 'readpng_init':
readpng.c:41:23: error: dereferencing pointer to incomplete type 'png_struct {aka struct png_struct_def}'
     if (setjmp(png_ptr->jmpbuf)) {
                       ^
sa.c: In function 'main':
sa.c:6:14: warning: format '%p' expects argument of type 'void *', but argument 2 has type 'png_structp {aka struct png_struct_def *}' [-Wformat=]
     printf("%p\n", png_ptr);
             ~^
make: *** [Makefile:6: sa] Error 1
